Systems and methods for determining the language to use for speech generated by a text to speech engine

ABSTRACT

Algorithms for synthesizing speech used to identify media assets are provided. Speech may be selectively synthesized from text strings associated with media assets, where each text string can be associated with a native string language (e.g., the language of the string). When several text strings are associated with at least two distinct languages, a series of rules can be applied to the strings to identify a single voice language to use for synthesizing the speech content from the text strings. In some embodiments, a prioritization scheme can be applied to the text strings to identify the more important text strings. The rules can include, for example, selecting a voice language based on the prioritization scheme, a default language associated with an electronic device, the ability of a voice language to speak text in a different language, or any other suitable rule.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No. 12/400,427, filed Mar. 9, 2009, which is hereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

This relates to systems and methods for selecting a language in which to synthesize audible speech from text.

BACKGROUND OF THE DISCLOSURE

Today, many popular electronic devices, such as personal digital assistants (“PDAs”) and hand-held media players or portable electronic devices (“PEDs”), are battery powered and include various user interface components. Conventionally, such portable electronic devices include buttons, dials, or touchpads to control the media devices and to allow users to navigate through media assets, including, for example, music, speech, or other audio, movies, photographs, interactive art, text, and media resident on (or accessible through) the media devices, to select media assets to be played or displayed, and/or to set user preferences for use by the media devices. The functionality supported by such portable electronic devices is increasing. At the same time, these media devices continue to get smaller and more portable. Consequently, as such devices get smaller while supporting robust functionality, there are increasing difficulties in providing adequate user interfaces for the portable electronic devices.

Some user interfaces have taken the form of graphical user interfaces or displays which, when coupled with other interface components on the device, allow users to navigate and select media assets and/or set user preferences. However, such graphical user interfaces or displays may be inconvenient, small, or unusable. Other devices have completely done away with a graphical user display.

When devices have no graphical user displays, or displays that are small, poorly illuminated, or unviewable by the user (e.g., an electronic device is in a user's pocket), a user may not be able to graphically identify the audio content being presented via the device. Thus, it may be useful to provide alternate mechanisms for identifying the audio content presented by the device.

SUMMARY OF THE DISCLOSURE

Embodiments of the invention provide audible human speech that may be used to identify media content delivered on a portable electronic device, and that may be combined with the media content such that it is presented during display or playback of the media content. Such speech content may be based on data associated with, and identifying, the media content by recording the identifying information and combining it with the media content. For such speech content to be appealing and useful for a particular user, it may be desirable for it to sound as if it were spoken in a single normal human language, in an accent that is familiar to the user.

To effectively provide such speech to a user, the electronic device may process one or more text strings using a text to speech (TTS) system to synthesize speech and output speech content in the form of audio files reflecting the text strings. The TTS system can include several voices that can be used to synthesize text strings, where each voice can be associated with a particular language. For example, the TTS system can provide one or more voices for each of English, Japanese, Chinese, French, Italian and German speech. Because it may be confusing or undesirable for a user to have speech provided in several languages (e.g., different text strings spoken by different voices), the electronic device may select a single language for particular text strings based on the one or more of languages of the text strings and the languages associated with the electronic device.

The electronic device can use any suitable approach for determining the voice language to use for a particular text string. For example, the electronic device can use a default language associated with the electronic device. As another example, the electronic device can use a language of the text string (e.g., string language). When several text strings are spoken in sequence the electronic device can identify a single language to use for the several text strings. When the several strings are all in the same language, the electronic device can select the single string language for speaking the strings. When the several strings are in a different languages, the electronic device can apply different rules to the strings to determine which of the string languages to use. For example, the electronic device can prioritize the strings and select a language associated with the most important string. As another example, the electronic device can select the default language associated with the device.

In some embodiments, the electronic device can determine whether different voices are able to speak in other languages. For example, the electronic device can determine whether an English voice can speak Chinese, French, Italian and Japanese strings (e.g., an English voice can speak French and Italian, but neither Chinese nor Japanese). When several text strings having different string languages are to be spoken, the electronic device can determine, from the languages of the several text strings, whether one or more of the string languages is able to speak the other string languages. If the electronic device determines that one or more of the string languages can be used to speak the other strings, the electronic device can select a voice in one of the one or more string languages (e.g., the string language associated with the most important of the one or more strings).

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other embodiments of the invention will be apparent upon consideration of the following detailed description, taken in conjunction with accompanying drawings, in which like reference characters refer to like parts throughout, and in which:

FIG. 1 is a schematic view of an illustrative system that supports text-to-speech synthesis and speech content in accordance with one embodiment of the invention;

FIG. 2 is a flowchart of an illustrative process for identifying the voice language to apply for particular text strings in accordance with one embodiment of the invention;

FIG. 3 is a schematic view of an illustrative speakable table in accordance with one embodiment of the invention; and

FIG. 4 is a schematic view of an illustrative electronic device for providing speech content to a user in accordance with one embodiment of the invention.

DETAILED DESCRIPTION OF THE DISCLOSURE

This relates to systems and methods for selecting a language in which to provide speech content that identifies a media asset through speech synthesis. The electronic device can provide speech content for any suitable media asset, including for example audio, video or other media items stored on the electronic device or available to the electronic device from a remote source (e.g., streamed media). In some embodiments, a user can direct a host device storing media assets to provide some or all of the media assets to the electronic device (e.g., using iTunes, available from Apple Inc. of Cupertino, Calif.). Alternatively, a user can retrieve media assets from an on-line store from which the user can download the media assets, or from other sources, such as local copying of a media asset, such as a CD or DVD, a live recording to local memory, a user composition, shared media assets from other sources, radio recordings, or other media assets sources. To identify the media assets, the electronic device can provide speech content based on text strings related to the media assets. The text strings can include any suitable information related to media assets, and be generated from metadata associated with the media assets. For example, the text strings can include strings for the artist, title, album, genre, year, description, lyrics, composer, personal preference rating, playlist, or other information for the media asset. In some embodiments, the text strings can result from processed metadata to remove or replace non-alphabetical characters of the metadata with alphabetical characters (e.g., replace “U2” with “You Two”).

Speech content can include audio clips resulting from the synthesis of text using a TTS system, such as the system described below. The speech content can be incorporated as part of the media asset (e.g., within the same file), or stored as a separate but related file. The user can receive the speech content using any suitable approach, including for example with the media asset from the source of the media asset. As another example, the user can direct a server, host device or an electronic device to create speech content for specific media assets and provide the speech content to the electronic device.

To generate speech content from text strings, the text to speech system can apply a voice to the text strings. The text to speech system can include several available voices each associated with different languages, dialects, or accents. For example, the system can include a voice for British English, American English, Canadian English, as well as voices for other languages and dialects in the other languages. Each voice can include several phonemes defining the basic sounds of the language of the voice, which can vary based on the language or accent of the voice (e.g., the phoneme for a short “o” sound is different in British English, American English, and Australian English). To generate speech content with a particular voice, the TTS synthesis system can process a text string to identify specific letters or combinations of letters associated with phonemes in the voice. The system can then combine the phonemes for the identified letters of the text string in the order of the letters, pausing to reflect punctuation or different words. The audio output provided by the system can be supplied to the user as the speech content for the text strings.

While each voice may be associated with a particular language or accent, a particular voice may also be able to speak text originating from a different language. For example, an English voice may be suitable for speaking text strings of words from other European languages, but not for speaking words of Asian languages (e.g., the English phonemes cannot apply to text strings of Asian languages). As another example, a Chinese voice may be suitable for speaking text strings in Korean and Spanish, but not Italian. The electronic device can include or access a database or table indicating, for each voice, whether particular languages are speakable by the voices. A language can be deemed speakable by a particular voice when any suitable condition is met, such as a particular amount of words being understandable (e.g., 90% of words are understandable), or that the voice output includes meaningful sounds (e.g., to ensure that phonemes of a particular voice can be applied text strings of a different language).

When a user directs the electronic device to provide speech content for several text strings, the electronic device can select a voice (e.g., a language) and apply the voice to the several text strings. If the several text strings are all in the same language (e.g., an artist name, track title and track title are all in the same language), the electronic device can use the string language as the voice language for the speech.

In some embodiments, the electronic device can instead or in addition include a default language specific to the device or to an application operating on the device. For example, the electronic device can be associated with a default language set up in the electronic device operating system. As another example, the electronic device can include a language associated with one or more applications. Using the default language, the electronic device can generate speech content from several text strings (e.g., text strings all having the same language).

If the several text strings do not all have the same language, however, the electronic device may apply one or more rules to the text strings to determine which language to use for speech content. The rules can include, for example, comparing the languages of the text strings and the default language of the device. In some embodiments, the electronic device can provide an ordering or prioritization for several text strings to speak. For example, the electronic device can assign different priorities to text strings based on the relative importance of their content to the user. In one implementation, for example, the electronic device can determine that text strings providing the title of media can be more important (and thus have a higher priority) than text strings providing the name of the artist or composer of the media. Using the prioritization information, the electronic device can select the language of the most important or relevant text string. In some embodiments, the electronic device can instead or in addition compare the languages of the text strings to determine which, if any of the text string languages, are usable for speaking the languages of the other text strings. The electronic device can then select the highest priority string language capable of speaking the other text string languages. If no language is capable of speaking all of the string languages, the electronic device can revert to the default language of the device, a predetermined language, or the string language that can speak the largest number of text strings.

Any suitable system can be used to generate speech content from text strings. FIG. 1 is a schematic view of an illustrative system that supports text-to-speech synthesis and speech content in accordance with one embodiment of the invention. Media system 100 may include several host devices 102 and server 110 connected via network 106. Each host device 102 may be associated with a user and coupled to one or more portable electronic devices (“PEDs”) 108. PED 108 may be coupled directly or indirectly to the network 106.

The user of host device 102 may access server 110 through network 106. Upon accessing server 110, the user may be able to acquire digital media assets from server 110 and request that such media be provided to host device 102. Here, the user can request the digital media assets in order to purchase, preview, or otherwise obtain limited rights to them.

Server 110 can receive and process user requests for media assets, as well as include a database in which several media assets are stored, along with synthesized speech content identifying these assets. A media asset and speech content associated with that particular asset may be stored as part of or otherwise associated with the same file. In some embodiments, server 110 may include a rendering processor or circuitry for synthesizing speech from the data (e.g., metadata) associated with and identifying the media asset. The rendering processors or circuitry can include one or more render engines as part of rendering servers, for example as described in commonly assigned U.S. patent application Ser. No. 12/240,458, filed Sep. 29, 2008 (the '459 application), which is incorporated herein by reference in its entirety. Server 110 can include one or more rendering processors.

Host device 102 may interconnect with server 110 via network 106. Network 106 may be, for example, a data network, such as a global computer network (e.g., the World Wide Web). Network 106 may be a wireless network, a wired network, or any combination of the same. Any suitable circuitry, device, system, or combination of these (e.g., a wireless communications infrastructure including communications towers and telecommunications servers) operative to create a communications network may be used to create network 106. Network 106 may be capable of providing communications using any suitable communications protocol. In some embodiments, network 106 may support, for example, traditional telephone lines, cable television, Wi-Fi™ (e.g., an 802.11 protocol), Ethernet, Bluetooth™, radio frequency systems (e.g., 900 MHz, 2.4 GHz, and 5.6 GHz communication systems), infrared, transmission control protocol/internet protocol (“TCP/IP”) (e.g., any of the protocols used in each of the TCP/IP layers), hypertext transfer protocol (“HTTP”), file transfer protocol (“FTP”), real-time transport protocol (“RTP”), real-time streaming protocol (“RTSP”), secure shell protocol (“SSH”), any other communications protocol, or any combination thereof.

In some embodiments of the invention, network 106 may support protocols used by wireless and cellular telephones and personal e-mail devices (e.g., an iPhone™ available by Apple Inc. of Cupertino, Calif.). Such protocols can include, for example, GSM, GSM plus EDGE, CDMA, quadband, and other cellular protocols. In another example, a long range communications protocol can include Wi-Fi™ and protocols for placing or receiving calls using voice-over-internet protocols (“VOIP”) or local area network (“LAN”) protocols. In other embodiments, network 106 may support protocols used in wired telephone networks. Host devices 102 and server 110 may connect to network 106 through a wired and/or wireless manner using bidirectional communications paths 103 and 105.

Portable electronic device 108 may be coupled to host device 102 in order to provide digital media assets that are present on host device 102 to portable electronic device 108. Portable electronic device 108 can couple to host device 102 over link 109. Link 109 may be a wired link or a wireless link. In certain embodiments, portable electronic device 108 may be a portable media player. The portable media player may be battery-powered and handheld and may be able to play music and/or video content. For example, portable electronic device 108 may be a media player such as any personal digital assistant (“PDA”), music player (e.g., an iPod™ Shuffle, an iPod™ Nano, or an iPod™ Touch available by Apple Inc. of Cupertino, Calif.), a cellular telephone (e.g., an iPhone™), a landline telephone, a personal e-mail or messaging device, or combinations thereof. In some embodiments, electronic device 108 can instead or in addition include some or all of the text-to-speech synthesizing circuitry and functionality of server 110, such that the speech content generation process can take place entirely or in part on electronic device 108.

Host device 102 may be any communications and processing device that is capable of storing media that may be accessed through portable electronic device 108. For example, host device 102 may be a desktop computer, a laptop computer, a personal computer, or a pocket-sized computer. In some embodiments, host device 102 can instead or in addition include some or all of the text-to-speech synthesizing circuitry and functionality of server 110, such that the speech content generation process can take place on host device 102, electronic device 108, server 110, or two or more of these (e.g., shared between host device 102 and server 110).

A user of portable electronic device 108 can request speech content for a digital media asset from sever 110, host device 102, or any other suitable device. The user may do so using iTunes™ available from Apple Inc., or any other software that may be run on host device 102 and that can communicate user requests to server 110 through network 106 using links 103 and 105. In doing so, the request that is communicated may include metadata associated with the desired media asset and from which speech content may be synthesized. Alternatively, the user can merely request from host device 102 or server 110 speech content associated with the media asset. Such a request may be in the form of an explicit request for speech content or may be automatically triggered by a user playing or performing another operation on a media asset that is already stored on personal electronic device 108. In particular, a request can be generated for speech content associated with each media item available for playback by a personal electronic device.

After receiving the request for speech content from personal electronic device 108, the appropriate text-to-speech processing component (e.g., server 110 or host device 102) can process the one or more text strings of the request to apply a voice to the strings. In particular, the electronic device can process and normalize text strings to prepare the strings for synthesis. The processing step can include, for example, identifying and replacing non-alphabetical characters in a text string (e.g., numeric characters and punctuation symbols, such as in “U2” and “P!nk”), parsing the text string into different words or phonemes, or any other suitable process for generating a text string for which speech content can be provided. The processing or normalizing step can include any of the steps or processes described in the '458 application.

Once the text strings have been processed and normalized, the text-to-speech processing component can determine the appropriate language for the speech content generated from the text strings. In some embodiments, each personal electronic device can be associated with a default language. The default language can be determined from an operating system or device setting (e.g., an initial setting when a user sets up the device), an application setting (e.g., a default language of a current application), or any other setting of the device defining a default language. The text-to-speech processing component can then use the default language for all speech content.

Instead or in addition, the speech content can be provided in a language related to the text string language. For example, the text-to-speech processing component can apply a voice language other than the default language to the text strings. The electronic device can define any suitable rules or criteria for determining which language to use for one or more text strings. FIG. 2 is a flowchart of an illustrative process for identifying the voice language to apply for particular text strings in accordance with one embodiment of the invention. Process 200 can begin at step 202. At step 204, the processing component can identify a set of text strings for which speech content is to be provided. For example, the processing component can identify a series of metadata strings identifying media available for playback by a personal electronic device. The text strings can be grouped by sets, where each set identifies particular data. In some embodiments, different text strings can be repeated in different sets, for example when two artists use the same title for a song or album, or when an artist's media is used in a compilation. The voice used for speech content based on a particular text string can be related to the particular set of text strings used, and may change based on the identified set of text strings. In some embodiments, the identified text strings can include more strings than those for which speech content will be provided. For example, the identified set of text strings can include some or all of the metadata associated with media content (e.g., also include year, genre, description and lyrics). The additional text strings may serve, for example, for more precisely determining the language of the text strings for which speech content is to be provided.

At step 206, the electronic device can identify a default language of a personal electronic device. For example, the personal electronic device can provide an indication of the default language with the request for speech content. As another example, the processing component can deduct the default language from geographic information related to the personal electronic device (e.g., geographic location associated with a media store used by the device). At step 208, the processing component can prioritize each text string of the set identified at step 204. For example, the processing component can assign priority values based on the metadata tag of each text string. In one implementation, a title and album name of a media item can have a higher priority than an artist name when speech content is provided for both the title and album, and the artist name. The processing component can use any suitable prioritization scheme, including for example assigning specific values (e.g., integer values) to each text string, associating tiers to text strings (e.g., high and low tiers), or any other suitable approach. In some embodiments, the processing scheme can limit the number of prioritization levels (e.g., three levels, with any suitable number of strings associated with each level).

At step 210, the processing component can identify a language associated with each text string of the identified set. Each text string of the set can be associated with a particular string language, or each word within a string can have a particular word language. Although the following discussion will describe the language in the context of a string language, it will be understood that any subset of the set of strings can be associated with a particular language. The processing component can use any suitable approach to determine the language of each of the text strings of the identified set. For example, the processing component can separate each text string into distinct words (e.g., by detecting certain characters that are predefined as boundary points, such as a space or “_” character), and determine whether each word is in vocabulary, for example in a table or database that includes a list of words, unigrams, N-grams (e.g., a sequence of words or characters having a length N, where N is an integer), character sets or ranges, etc., known in all known languages. As another example, the processing component can instead or in addition perform an N-gram analysis at the character level for the words in the text string (e.g., determine the probability of occurrence of the N-grams that pertain to a word may be determined in each known language). As still another example, the processing component can instead or in addition determine the probability of occurrence of each of the identified words in each known language. These and other approaches for determining the text string languages are described in the '459 application, which is incorporated by reference herein in its entirety.

At step 212, the electronic device can determine whether the languages of the text strings for which speech content is to be provided are the same and whether the text string language is speakable in the default language. A first language can be deemed to be speakable in a second language when speech content generated using a voice in the second language applied to a text string in the first language provides an audible output that satisfies particular criteria. The criteria can include, for example a percentage of words that are understandable by a speaker of the first language (e.g., determined using voice analysis or survey by volunteers), an acceptable mapping of phonemes between the first and second languages, an audible output, or any other suitable criteria. The processing component can generate or access a table or database indicating whether a first language is speakable in a second language (e.g., table 300, FIG. 3, discussed below). The table or database can be stored in the same device as the processing component, or in a distinct device accessible to the processing component.

FIG. 3 is a schematic view of an illustrative speakable table in accordance with one embodiment of the invention. Table 300 can include rows 310 and columns 320 of languages (and accents within a language). Each cell 302 of table 300 can include one of two values (e.g., 0 or 1, or yes or no) that indicate whether the language of the corresponding row is speakable in the language of the corresponding column. For example, as shown in table 300, Italian is speakable in French, Japanese is speakable in British English, but Chinese is not speakable in Irish English.

Returning to FIG. 2, if the processing component determines that the languages of the text strings for which speech content is to be provided are the same and that the text string language is speakable in the default language, process 200 can move to step 214.

At step 214, the processing component can use the default language as the voice language for generating speech content for the identified set of text strings. For example, one or more phonemes corresponding to the normalized text of the text stings may be obtained in the default language. A phoneme is a minimal sound unit of speech that, when contrasted with another phoneme, affects the naming of words in a particular language. It is typically the smallest unit of sound that, when contrasted with another phoneme, affects the naming of words in a language. For example, the sound of the character “r” in the words “red,” “bring,” or “round” in English is a phoneme. A more detailed discussion of the application of phoneme mapping for generating speech content is described in the '458 application, previously incorporated by reference herein. Process 200 can then end at step 238.

If, at step 212, the processing component instead determines that either the text string languages are not that same or that the text string languages are not speakable in the default language, process 200 can move to step 216. At step 216, the processing component can determine whether the text string languages are the same but not speakable in the default language. The processing component can use any suitable approach to determine whether the text string language is speakable in the default language, including for example determining from a lookup table (e.g., table 300, FIG. 3). If the processing component determines that the text string languages are the same but not speakable in the default language, process 200 can move to step 218. At step 218, the processing component can use the text string language common to the set of text strings to generate speech content. For example, the processing component can apply phonemes associated with the text string language to the text strings. Process 200 can then end at step 238.

If, at step 216, the processing component instead determines that the text string languages are not the same, process 200 can move to step 220. At step 220, the processing component can determine whether a low priority text string is in the default language, and whether a high priority text string is speakable in the default language. For example, the processing component can determine whether an artist name is in the default language (e.g., English) and whether a title is in a language that is speakable in the default language (e.g., French). The processing component can use any suitable approach to determine whether the high priority string language is speakable in the default language, including for example determining from a lookup table (e.g., table 300, FIG. 3). If the processing component determines that the low priority string is in the default language, and that the high priority string is speakable in the default language, process 200 can move to step 222. At step 222, the processing component can use the default language to generate speech content. For example, the processing component can apply phonemes associated with the default language to the text strings. Process 200 can then end at step 238.

If, at step 220, the processing component instead determines that the low priority text string is not in the default language, or that the high priority string is not speakable in the default language, process 200 can move to step 224. At step 224, the processing component can determine whether a low priority text string is speakable in the language of a high priority text string. For example, the processing component can determine whether an artist name (e.g., an English text string) is speakable in the language of the title (e.g., French). The processing component can use any suitable approach to determine whether the low priority string language is speakable in the high priority string language, including for example determining from a lookup table (e.g., table 300, FIG. 3). If the processing component determines that the low priority string is speakable in the high priority string language, process 200 can move to step 226. At step 226, the processing component can use the high priority text string language to generate speech content. For example, the processing component can apply phonemes associated with the high priority test string language to the text strings. Process 200 can then end at step 238.

If, at step 224, the processing component instead determines that the low priority text string is not speakable in the high priority string language, process 200 can move to step 228. At step 228, the processing component can determine whether a low priority text string is not speakable in the language of a high priority text string, but both the low and high priority strings are speakable in the default language. For example, the processing component can determine that an artist name (e.g., a Dutch text string) is not speakable in the language of a title (e.g., Italian), but that both text strings are speakable in the default language (e.g., French). As described above, the processing component can use any suitable approach to determine whether the text strings are speakable in the default string language, including for example determining from several lookups using a lookup table (e.g., one lookup per text string language). If the processing component determines that the low priority string is not speakable in the high priority string language, but all of the text strings are speakable in the default language, process 200 can move to step 230. At step 230, the processing component can use the default language to generate speech content. For example, the processing component can apply phonemes associated with the default language to the text strings. Process 200 can then end at step 238.

If, at step 228, the processing component instead determines that the low priority text string is not speakable in the high priority string language and the text strings are not speakable in the default language, process 200 can move to step 232. At step 232, the processing component can determine whether a low priority text string is not speakable in the language of a high priority text string, but applying the high priority text string language to will provide an audible output. For example, the processing component can determine that an artist name, for example a Korean text string, is not speakable in the language of a title, for example Dutch, but that applying Dutch phonemes to the Korean artist name will provide an audible output. The processing component can include a secondary table or database indicating whether applying phonemes from a first language to a second language provides an audible output, or a second entry for each cell of a primary speakable table (e.g., table 300, FIG. 3). If the processing component determines that applying the high priority text string language to the low priority text string provides an audible output, process 200 can move to step 234. At step 234, the processing component can use the high priority text string language to generate speech content. Process 200 can then end at step 238.

If, at step 232, the processing component instead determines that applying the high priority text string language to the low priority text string provides no audible output, process 200 can move to step 236. At step 236, the processing component can use English as the voice language. Alternatively, the processing component can use any other arbitrary language as a fallback when all other rules described above fail. In some embodiments, the language of step 236 can be selected to maximize the chance of providing adequate speech content. For example, the processing component can select a language associated with a column having a large number of “speakable” entries in a speakable table (e.g., table 300, FIG. 3). Process 200 can then end at step 238.

It will be noted that the order of the steps of process 200 is merely exemplary, and that the order in which each of the rules are applied to a set of text strings can change. For example, the order of the rules of steps 220 and 224 can be reversed.

Instead of or in addition to providing speech content describing currently played back media, the electronic device can provide audio messages when errors are detected. Such error messages, can include, for example, indicating to a user that an incorrect headset is being used (e.g., a headset with insufficient functionality such as no input mechanism), or that media should be added to the device in a particular manner (e.g., using iTunes available from Apple Inc.). In particular, if the electronic device does not include a display, audio error messages may be one of the only mechanisms by which to provide an indication of the error to the user. The error messages can be provided to the user in any language, including for example in the default language or in a language associated with a host device, server, or other device. In some embodiments, the error message can be provided in a language set by an application (e.g., iTunes) or an operating system (e.g., the host device operating system). The error messages can be generated as speech content from predefined error text strings, for example in a manner similar to the speech content generated for identifying media items that are played back.

FIG. 4 is a schematic view of an illustrative electronic device for providing speech content to a user in accordance with one embodiment of the invention. Electronic device 400 can include any suitable type of electronic device operative to provide audio to a user. For example, electronic device 400 can include a media player such as an iPod® available by Apple Inc., of Cupertino, Calif., a cellular telephone, a personal e-mail or messaging device (e.g., a Blackberry® or a Sidekick®), an iPhone® available from Apple Inc., pocket-sized personal computers, personal digital assistants (PDAs), a laptop computer, a music recorder, a video recorder, a camera, radios, medical equipment, and any other portable electronic device capable of being moved by the user. The electronic device can be coupled to communications systems to access remote sources of information, such as remote databases (e.g., the Internet) or host devices (e.g., a desktop computer).

Electronic device 400 can include a processor or control circuitry 402, storage 404, memory 406 input/output circuitry 408, and display 410 as typically found in an electronic device of the type of electronic device 400. In some embodiments, one or more of electronic device components 400 can be combined or omitted (e.g., combine storage 404 and memory 406), or electronic device 400 can include other components not combined or included in those shown in FIG. 4 (e.g., communications circuitry, motion detection or sensing components, or positioning circuitry), or several instances of the components shown in FIG. 4. For the sake of simplicity, only one of each of the components is shown in FIG. 4.

Accordingly, it is emphasized that the invention is not limited to the explicitly disclosed systems and methods, but is intended to include variations to and modifications thereof which are within the spirit of the following claims. 

What is claimed is:
 1. A method for synthesizing speech content based on a plurality of text strings, the method implemented by at least one computing device having at least one processor and at least one program stored in memory, the method comprising: identifying a respective language associated with each respective one of the plurality of text strings; distinguishing at least two different identified languages; and using one or more rules to select a single language for generating the speech content for the plurality of text strings.
 2. The method of claim 1, further comprising assigning a priority to each of the plurality of text strings, including assigning at least one high priority text string and at least one low priority text string.
 3. The method of claim 2, further comprising: identifying a default language associated with an electronic device providing the speech content; determining whether the identified languages are speakable in the default language; and in accordance with a determination that the identified languages are speakable in the default language, generating the speech content using the default language.
 4. The method of claim 3, wherein determining further comprises: determining whether a minimum amount of speech content to be generated in the default language from a particular text string in a language other than the default language will be understandable.
 5. The method of claim 2, further comprising: determining whether the identified language of a low priority text string is speakable in the language of a high priority text string; and in accordance with a determination that the identified language of the low priority text string is speakable in the language of the high priority text string, generating the speech content using the language of the high priority text string.
 6. The method of claim 2, further comprising: determining whether the identified language of a low priority text string is speakable in the identified language of a high priority text string; and in accordance with a determination that the identified language of the low priority text string is not speakable in the language of the high priority text string, generating the speech content using a default language associated with an electronic device providing the speech content.
 7. The method of claim 6, further comprising: determining whether the low priority text string is speakable in the default language; and in accordance with a determination that the low priority text string is not speakable in the default language, generating the speech content using the language of the high priority text string.
 8. The method of claim 7, further comprising: determining whether generating the speech content associated with the low priority text string using the identified language of the high priority text string will result in no audio output; and in accordance with a determination that generating the speech content associated with the low priority text string using the identified language of the high priority text string will result in no audio output, generating the speech content using an arbitrary language.
 9. A method for generating speech content for a plurality of text strings, the method implemented by at least one computing device having at least one processor and at least one program stored in memory, the method comprising: identifying a plurality of text strings; assigning a respective rank to each respective one of the plurality of text strings; detecting that a language of a lower rank text string and a higher rank text string are different; determining whether the language of the lower rank text string is speakable in the language of the higher rank text string; and in accordance with a determination that the language of the lower rank text string is speakable in the language of the higher rank text string, generating speech content for at least the lower rank text string and the higher rank text string using the language of the higher rank text string.
 10. The method of claim 9, wherein: the low priority text string comprises an artist name; and the high priority text string comprises at least one of a track name and an album name.
 11. The method of claim 9, further comprising: identifying a default language associated with a personal electronic device providing the speech content; determining whether the language of the lower rank text string and the language of the higher rank text string are both speakable in the default language; and in accordance with a determination that the language of the lower rank text string and the language of the higher rank text string are both speakable in the default language, generating speech content for the lower rank text string and the higher rank text string using the default language.
 12. The method of claim 11, wherein: the language of at least one of the lower rank text string and the higher rank text string is the default language.
 13. Computer readable media for synthesizing speech content based on a plurality of text strings, the computer readable media comprising computer readable instructions recorded thereon for: identifying a respective language associated with each respective one of the plurality of text strings; distinguishing at least two different identified languages; and using one or more rules to select a single language for generating the speech content for the plurality of text strings.
 14. An electronic device having at least one processor and memory storing at least one program for execution by the at least one processor, the at least one program including instructions for: identifying a respective language associated with each respective one of the plurality of text strings; distinguishing at least two different identified languages; and using one or more rules to select a single language for generating the speech content for the plurality of text strings.
 15. Computer readable media for generating speech content for a plurality of text strings, the computer readable media comprising computer readable instructions recorded thereon for: identifying a plurality of text strings; assigning a respective rank to each respective one of the plurality of text strings; detecting that a language of a lower rank text string and a higher rank text string are different; determining whether the language of the lower rank text string is speakable in the language of the higher rank text string; and in accordance with a determination that the language of the lower rank text string is speakable in the language of the higher rank text string, generating speech content for at least the lower rank text string and the higher rank text string using the language of the higher rank text string.
 16. An electronic device having at least one processor and memory storing at least one program for execution by the at least one processor, the at least one program including instructions for: identifying a plurality of text strings; assigning a respective rank to each respective one of the plurality of text strings; detecting that a language of a lower rank text string and a higher rank text string are different; determining whether the language of the lower rank text string is speakable in the language of the higher rank text string; and in accordance with a determination that the language of the lower rank text string is speakable in the language of the higher rank text string, generating speech content for at least the lower rank text string and the higher rank text string using the language of the higher rank text string.
 17. The computer readable media of claim 13, further comprising instructions recorded thereon for assigning a priority to each of the plurality of text strings, including assigning at least one high priority text string and at least one low priority text string.
 18. The computer readable media of claim 17, further comprising instructions recorded thereon for: identifying a default language associated with an electronic device providing the speech content; determining whether the identified languages are speakable in the default language; and in accordance with a determination that the identified languages are speakable in the default language, generating the speech content using the default language.
 19. The electronic device of claim 14, the at least one program further including instructions for assigning a priority to each of the plurality of text strings, including assigning at least one high priority text string and at least one low priority text string.
 20. The electronic device of claim 19, the at least one program further including instructions for: identifying a default language associated with an electronic device providing the speech content; determining whether the identified languages are speakable in the default language; and in accordance with a determination that the identified languages are speakable in the default language, generating the speech content using the default language.
 21. The computer readable media of claim 15, wherein: the low priority text string comprises an artist name; and the high priority text string comprises at least one of a track name and an album name.
 22. The computer readable media of claim 15, further comprising computer readable instructions stored thereon for: identifying a default language associated with a personal electronic device providing the speech content; determining whether the language of the lower rank text string and the language of the higher rank text string are both speakable in the default language; and in accordance with a determination that the language of the lower rank text string and the language of the higher rank text string are both speakable in the default language, generating speech content for the lower rank text string and the higher rank text string using the default language.
 23. The electronic device of claim 16, wherein: the low priority text string comprises an artist name; and the high priority text string comprises at least one of a track name and an album name.
 24. The electronic device of claim 16, the at least one program further including instructions for: identifying a default language associated with a personal electronic device providing the speech content; determining whether the language of the lower rank text string and the language of the higher rank text string are both speakable in the default language; and in accordance with a determination that the language of the lower rank text string and the language of the higher rank text string are both speakable in the default language, generating speech content for the lower rank text string and the higher rank text string using the default language. 